package weaponrelated;
import java.awt.Point;
import java.awt.geom.Area;

import javax.swing.JFrame;
import javax.swing.JLabel;

import planes.enemy;
import GAME.game;
import planes.*;
/**
* Clase que modela a una bala.
*/
public class bullet extends JLabel{
	protected game juego;
	protected int speed;
	protected int potencia;
	protected boolean up;
	protected boolean down;
	protected boolean left;
	protected boolean right;
	/**
	* Constructor de la clase buller.
	*/
	public bullet(game g,int pot,int vel){
		potencia=pot;
		juego=g;
		speed=vel;
		up=false;
		down=false;
		left=false;
		right=false;
	}
	/**
	* Metodo que setea el tipo de movimiento de la bala.
	*/
	public void setmovimiento(boolean d,boolean l,boolean r,boolean u){ //setea el tipo de movimiento de la bala
		down=d;
		left=l;
		right=r;
		up=u;
	}
	/**
	* Metodo que simula el movimiento de la bala.
	*/
	public void mover(){
		Point pos=this.getLocation();
		if(up && !down && !left && !right){ //mov arriva
		
				int v = pos.y - speed;
				pos.setLocation(pos.x, v);
			
				
		}
		if(down && !up && !left && !right){ // mov abajo
		
			int v = pos.y + speed;
			pos.setLocation(pos.x, v);
			
		}
		if(left && !up && !right && !down){ // mov izquierda
				
				int v = pos.x - speed;
				pos.setLocation(v, pos.y);
				
		
		}
		if(right && !up && !down && !left){ // mov derecha
			
				int v = pos.x + speed;
				pos.setLocation(v, pos.y);
			
				
		}
		if(right && up && !down && !left){ // mov diagonal arrivaderecha
			
				int v = pos.x + speed;
				pos.setLocation(v, pos.y);
				v = pos.y - speed;
				pos.setLocation(pos.x, v);
				
			
			
		}
		if(left && up && !right && !down){ //mov diagonal izquierdaarriva
				
				int v = pos.x - speed;
				pos.setLocation(v, pos.y);
				v = pos.y - speed;
				pos.setLocation(pos.x, v);
				
			
		}
		if(right && !up && down && !left){ // mov derechaabajo
			
				int v = pos.x + speed;
				pos.setLocation(v, pos.y);
				v = pos.y + speed;
				pos.setLocation(pos.x, v);
				
			
		}
		if(left && !up && !right && down){ // mov izquierda abajo
					
				int v = pos.x - speed;
				pos.setLocation(v, pos.y);
				v = pos.y + speed;
				pos.setLocation(pos.x, v);
				
			
		}
		this.setLocation(pos);
	}
	/**
	* Metodo que hace el disparo invisible.
	*/
	public void vanish(){
		this.setVisible(false);
		juego=null;
	
	}
	/**
	* Consulta que retorna la potencia de la bala.
	* @return int potencia de la bala
	*/
	public int getpot(){
		return potencia;
	}
	/**
	* Consulta que retorna la velocidad de la bala.
	* @return int speed de la bala
	*/
	public int getspeed(){
		return speed;
	}
	/**
	* Consulta que retorna si la bala intersecta al JLabel que le pasan por parametro.
	* @param JLabel a  intersectar con la bala.
	* @return boolean true si la bala intersecta al JLabel a y false en caso contrario
	*/
	public boolean intersecta(JLabel a){
	    Area areaA = new Area(a.getBounds());
	    Area areaB = new Area(this.getBounds());

	    return areaA.intersects(areaB.getBounds2D());
	}
}


